package edu.ensabap.matricula.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.stereotype.Repository;

import edu.ensabap.matricula.bean.AlumnoDTO;
import edu.ensabap.matricula.bean.AntonioDTO;
import edu.ensabap.matricula.bean.EdgarDTO;
import edu.ensabap.matricula.constants.MySQlQuery;
import edu.ensabap.matricula.constants.RowMapperConstants;


@Repository
public class AntonioDAO {

	private SimpleJdbcTemplate simpleJdbcTemplate;
    private JdbcTemplate jdbcTemplate;
	private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
	
	@Autowired
	public void init(DataSource dataSource) {
		this.simpleJdbcTemplate = new SimpleJdbcTemplate(dataSource);
		this.jdbcTemplate=new JdbcTemplate(dataSource);
		this.namedParameterJdbcTemplate=new NamedParameterJdbcTemplate(dataSource);
		
	}
	
	
//	Crear metodo listar Antonio
	
	@SuppressWarnings("unchecked")
	public List<AntonioDTO> listar(AntonioDTO antonioDTO){
		
		String sql="SELECT id, codigo, nombre FROM tb_antonio WHERE 1=1 ";
		if(antonioDTO.getNombre()!=null){
			sql += " AND nombre LIKE '%"+ antonioDTO.getNombre() +"%' ";
		}
		if(antonioDTO.getCodigo()!=null){
			sql += " AND codigo LIKE '%"+ antonioDTO.getCodigo() +"%' ";
		}

		sql += " ORDER BY id ";
		
		return this.jdbcTemplate.query(sql, new RowMapperConstants.AntonioMapper());

		
	}
	
	
	public int insertar(AntonioDTO antonioDTO){
		System.out.println("ingreso al insertar");
		Map<String, Object> parametros = new HashMap<String, Object>();
		
		parametros.put("codigo",antonioDTO.getCodigo());
		parametros.put("nombre",antonioDTO.getNombre());
		
		String sql = MySQlQuery.INSERTAR_ANTONIO;
		
		return this.simpleJdbcTemplate.update(sql,parametros);
	}
	
	
	public int eliminar(AntonioDTO antonioDTO){
		System.out.println("EL ID ES :"+antonioDTO.getId());
		String sql = MySQlQuery.ELIMINAR_ANTONIO;
		Map<String, Object> parametros= new HashMap<String, Object>();
		parametros.put("id",antonioDTO.getId());
		
		return this.simpleJdbcTemplate.update(sql, parametros);
	}
	
	
}
